{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Density Estimation for a mixture of Gaussians (using GaussianMixtures.jl)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Adapted from http://scikit-learn.org/stable/auto_examples/mixture/plot_gmm_pdf.html"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Plot the density estimation of a mixture of two Gaussians, then use cross-validation to find the optimal number of clusters. Data is generated from two Gaussians with different centers and covariance matrices. We then use `GridSearchCV` to find the optimal number of mixtures."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": false,
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "//anaconda/lib/python2.7/site-packages/matplotlib/font_manager.py:273: UserWarning: Matplotlib is building the font cache using fc-list. This may take a moment.\n",
      "  warnings.warn('Matplotlib is building the font cache using fc-list. This may take a moment.')\n",
      "WARNING: Method definition require(Symbol) in module Base at loading.jl:345 overwritten in module Main at /Users/cedric/.julia/v0.5/Requires/src/require.jl:12.\n",
      "\u001b[1m\u001b[34mINFO: Recompiling stale cache file /Users/cedric/.julia/lib/v0.5/GaussianMixtures.ji for module GaussianMixtures.\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Initializing GMM, 2 Gaussians diag covariance 2 dimensions using 600 data points\n",
      "\u001b[0m"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  Iters               objv        objv-change | affected \n",
      "-------------------------------------------------------------\n",
      "      0       7.850874e+03\n",
      "      1       5.165666e+03      -2.685208e+03 |        0\n",
      "      2       5.165666e+03       0.000000e+00 |        0\n",
      "K-means converged with 2 iterations (objv = 5165.666163455702)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[1m\u001b[34mINFO: K-means with 600 data points using 2 iterations\n",
      "100.0 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Running 10 iterations EM on full cov GMM with 2 Gaussians in 2 dimensions\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 1, average log likelihood -2.026541\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 2, average log likelihood -2.026538\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 3, average log likelihood -2.026538\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 4, average log likelihood -2.026538\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 5, average log likelihood -2.026538\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 6, average log likelihood -2.026538\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 7, average log likelihood -2.026538\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 8, average log likelihood -2.026538\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 9, average log likelihood -2.026538\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 10, average log likelihood -2.026538\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: EM with 600 data points 10 iterations avll -2.026538\n",
      "54.5 data points per parameter\n",
      "\u001b[0m"
     ]
    },
    {
     "data": {
      "text/plain": [
       "GMM{Float64} with 2 components in 2 dimensions and full covariance\n",
       "Mix 1: weight 0.500000\n",
       " mean: [-0.298301,-0.00712635]\n",
       " covariance: 2×2 Array{Float64,2}:\n",
       " 13.964    2.89262\n",
       "  2.89262  1.09462\n",
       "Mix 2: weight 0.500000\n",
       " mean: [19.9828,19.9162]\n",
       " covariance: 2×2 Array{Float64,2}:\n",
       "  1.08001    -0.0117825\n",
       " -0.0117825   1.08029  \n"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "using PyPlot, PyCall\n",
    "using ScikitLearn\n",
    "using ScikitLearn.Utils: meshgrid\n",
    "using GaussianMixtures: GMM\n",
    "\n",
    "@pyimport matplotlib.colors as mpl_colors\n",
    "\n",
    "n_samples = 300\n",
    "\n",
    "# generate random sample, two components\n",
    "srand(42)\n",
    "\n",
    "# generate spherical data centered on (20, 20)\n",
    "shifted_gaussian = randn(n_samples, 2) .+ [20, 20]'\n",
    "\n",
    "# generate zero centered stretched Gaussian data\n",
    "C = [0. -0.7\n",
    "     3.5 .7]\n",
    "stretched_gaussian = randn(n_samples, 2) * C\n",
    "\n",
    "# concatenate the two datasets into the final training set\n",
    "X_train = vcat(shifted_gaussian, stretched_gaussian)\n",
    "\n",
    "# fit a Gaussian Mixture Model with two components\n",
    "clf = GMM(n_components=2, kind=:full)\n",
    "\n",
    "fit!(clf, X_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "PyPlot.Figure(PyObject <matplotlib.figure.Figure object at 0x10d287850>)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# display predicted scores by the model as a contour plot\n",
    "x = linspace(-20.0, 30.0)\n",
    "y = linspace(-20.0, 40.0)\n",
    "X, Y = meshgrid(x, y)\n",
    "XX = hcat(X[:], Y[:])\n",
    "Z = -score_samples(clf, XX)\n",
    "\n",
    "Z = reshape(Z, size(X))\n",
    "\n",
    "CS = contour(X, Y, Z, norm=mpl_colors.LogNorm(vmin=1.0, vmax=1000.0),\n",
    "             levels=logspace(0, 3, 10))\n",
    "CB = colorbar(CS, shrink=0.8, extend=\"both\")\n",
    "scatter(X_train[:, 1], X_train[:, 2], .8)\n",
    "\n",
    "title(\"Negative log-likelihood predicted by a GMM\")\n",
    "axis(\"tight\");"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Posterior probability of each data point"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This computes the (posterior) probability of each point being in cluster 1 vs. cluster 2 (it's ordered because of the way we built X):"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "600×2 Array{Float64,2}:\n",
       " 3.97461e-141  1.0         \n",
       " 3.57557e-112  1.0         \n",
       " 7.73662e-101  1.0         \n",
       " 7.79742e-146  1.0         \n",
       " 1.86899e-101  1.0         \n",
       " 1.04168e-94   1.0         \n",
       " 4.74714e-121  1.0         \n",
       " 1.09878e-140  1.0         \n",
       " 7.88034e-123  1.0         \n",
       " 1.52832e-114  1.0         \n",
       " 7.36057e-106  1.0         \n",
       " 1.50613e-126  1.0         \n",
       " 3.56267e-93   1.0         \n",
       " ⋮                         \n",
       " 1.0           7.50692e-174\n",
       " 1.0           4.34159e-115\n",
       " 1.0           5.54185e-190\n",
       " 1.0           6.1195e-198 \n",
       " 1.0           3.20059e-152\n",
       " 1.0           3.94132e-135\n",
       " 1.0           1.38236e-112\n",
       " 1.0           3.81567e-170\n",
       " 1.0           3.25009e-181\n",
       " 1.0           5.6759e-181 \n",
       " 1.0           6.01246e-249\n",
       " 1.0           3.3006e-147 "
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predict_proba(clf, X_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "`predict` yields the cluster to which it belongs:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "600-element Array{Int64,1}:\n",
       " 2\n",
       " 2\n",
       " 2\n",
       " 2\n",
       " 2\n",
       " 2\n",
       " 2\n",
       " 2\n",
       " 2\n",
       " 2\n",
       " 2\n",
       " 2\n",
       " 2\n",
       " ⋮\n",
       " 1\n",
       " 1\n",
       " 1\n",
       " 1\n",
       " 1\n",
       " 1\n",
       " 1\n",
       " 1\n",
       " 1\n",
       " 1\n",
       " 1\n",
       " 1"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "predict(clf, X_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Grid-search to find the optimal number of clusters"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "using ScikitLearn.GridSearch"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  "
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[1m\u001b[34mINFO: Initializing GMM, 2 Gaussians diag covariance 2 dimensions using 400 data points\n",
      "\u001b[0m"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iters               objv        objv-change | affected \n",
      "-------------------------------------------------------------\n",
      "      0       1.821221e+04\n",
      "      1       4.717918e+03      -1.349429e+04 |        2\n",
      "      2       4.713803e+03      -4.115211e+00 |        0\n",
      "      3       4.713803e+03       0.000000e+00 |        0\n",
      "K-means converged with 3 iterations (objv = 4713.802531784696)\n",
      "  Iters               objv        objv-change | affected \n",
      "-------------------------------------------------------------\n",
      "      0       4.482854e+03\n",
      "      1       3.436488e+03      -1.046366e+03 |        0\n",
      "      2       3.436488e+03       0.000000e+00 |        0\n",
      "K-means converged with 2 iterations (objv = 3436.4881168493384)\n",
      "  Iters               objv        objv-change | affected \n",
      "-------------------------------------------------------------\n",
      "      0       4.513648e+03\n",
      "      1       2.162762e+03      -2.350886e+03 |        0\n",
      "      2       2.162762e+03       0.000000e+00 |        0\n",
      "K-means converged with 2 iterations (objv = 2162.7619250171715)\n",
      "  Iters               objv        objv-change | affected \n",
      "-------------------------------------------------------------\n",
      "      0       5.399472e+03\n",
      "      1       2.419982e+03      -2.979490e+03 |        2\n",
      "      2       2.174379e+03      -2.456035e+02 |        2\n",
      "      3       2.052976e+03      -1.214027e+02 |        2\n",
      "      4       2.009106e+03      -4.386963e+01 |        2\n",
      "      5       1.964242e+03      -4.486403e+01 |        2\n",
      "      6       1.929268e+03      -3.497478e+01 |        2\n",
      "      7       1.903249e+03      -2.601857e+01 |        2\n",
      "      8       1.890915e+03      -1.233384e+01 |        2\n",
      "      9       1.881258e+03      -9.657317e+00 |        2\n",
      "     10       1.879398e+03      -1.859491e+00 |        2\n",
      "     11       1.879267e+03      -1.317339e-01 |        0\n",
      "     12       1.879267e+03       0.000000e+00 |        0\n",
      "K-means converged with 12 iterations (objv = 1879.2667044382122)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[1m\u001b[34mINFO: K-means with 400 data points using 3 iterations\n",
      "66.7 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Running 10 iterations EM on full cov GMM with 2 Gaussians in 2 dimensions\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 1, average log likelihood -2.060321\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 2, average log likelihood -2.060312\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 3, average log likelihood -2.060312\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 4, average log likelihood -2.060312\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 5, average log likelihood -2.060312\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 6, average log likelihood -2.060312\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 7, average log likelihood -2.060312\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 8, average log likelihood -2.060312\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 9, average log likelihood -2.060312\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 10, average log likelihood -2.060312\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: EM with 400 data points 10 iterations avll -2.060312\n",
      "36.4 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Initializing GMM, 2 Gaussians diag covariance 2 dimensions using 400 data points\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: K-means with 400 data points using 2 iterations\n",
      "66.7 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Running 10 iterations EM on full cov GMM with 2 Gaussians in 2 dimensions\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 1, average log likelihood -2.039125\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 2, average log likelihood -2.039119\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 3, average log likelihood -2.039119\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 4, average log likelihood -2.039119\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 5, average log likelihood -2.039119\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 6, average log likelihood -2.039119\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 7, average log likelihood -2.039119\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 8, average log likelihood -2.039119\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 9, average log likelihood -2.039119\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 10, average log likelihood -2.039119\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: EM with 400 data points 10 iterations avll -2.039119\n",
      "36.4 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Initializing GMM, 2 Gaussians diag covariance 2 dimensions using 400 data points\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: K-means with 400 data points using 2 iterations\n",
      "66.7 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Running 10 iterations EM on full cov GMM with 2 Gaussians in 2 dimensions\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 1, average log likelihood -1.845672\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 2, average log likelihood -1.845664\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 3, average log likelihood -1.845664\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 4, average log likelihood -1.845664\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 5, average log likelihood -1.845664\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 6, average log likelihood -1.845664\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 7, average log likelihood -1.845664\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 8, average log likelihood -1.845664\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 9, average log likelihood -1.845664\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 10, average log likelihood -1.845664\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: EM with 400 data points 10 iterations avll -1.845664\n",
      "36.4 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Initializing GMM, 3 Gaussians diag covariance 2 dimensions using 400 data points\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: K-means with 400 data points using 12 iterations\n",
      "44.4 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Running 10 iterations EM on full cov GMM with 3 Gaussians in 2 dimensions\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 1, average log likelihood -2.073097\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 2, average log likelihood -2.063712\n",
      "\u001b[0m"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  Iters               objv        objv-change | affected \n",
      "-------------------------------------------------------------\n",
      "      0       4.499241e+03\n",
      "      1       2.035751e+03      -2.463490e+03 |        2\n",
      "      2       1.844393e+03      -1.913580e+02 |        2\n",
      "      3       1.729037e+03      -1.153562e+02 |        2\n",
      "      4       1.664768e+03      -6.426910e+01 |        2\n",
      "      5       1.623391e+03      -4.137703e+01 |        2\n",
      "      6       1.595023e+03      -2.836753e+01 |        2\n",
      "      7       1.579721e+03      -1.530260e+01 |        2\n",
      "      8       1.567036e+03      -1.268527e+01 |        2\n",
      "      9       1.566232e+03      -8.038358e-01 |        2\n",
      "     10       1.566041e+03      -1.905610e-01 |        0\n",
      "     11       1.566041e+03       0.000000e+00 |        0\n",
      "K-means converged with 11 iterations (objv = 1566.0411445832567)\n",
      "  Iters               objv        objv-change | affected \n",
      "-------------------------------------------------------------\n",
      "      0       1.779983e+03\n",
      "      1       1.396880e+03      -3.831030e+02 |        2\n",
      "      2       1.296204e+03      -1.006756e+02 |        2\n",
      "      3       1.251941e+03      -4.426325e+01 |        2\n",
      "      4       1.240744e+03      -1.119661e+01 |        0\n",
      "      5       1.240744e+03       0.000000e+00 |        0\n",
      "K-means converged with 5 iterations (objv = 1240.7441157403405)\n",
      "  Iters               objv        objv-change | affected \n",
      "-------------------------------------------------------------\n",
      "      0       2.027605e+03\n",
      "      1       1.219705e+03      -8.079005e+02 |        3\n",
      "      2       1.110925e+03      -1.087801e+02 |        3\n",
      "      3       1.085668e+03      -2.525635e+01 |        2\n",
      "      4       1.081649e+03      -4.019731e+00 |        2\n",
      "      5       1.078715e+03      -2.933943e+00 |        2\n",
      "      6       1.077851e+03      -8.634101e-01 |        0\n",
      "      7       1.077851e+03       0.000000e+00 |        0\n",
      "K-means converged with 7 iterations (objv = 1077.8512850137085)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[1m\u001b[34mINFO: iteration 3, average log likelihood -2.061034\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 4, average log likelihood -2.059899\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 5, average log likelihood -2.059317\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 6, average log likelihood -2.058981\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 7, average log likelihood -2.058771\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 8, average log likelihood -2.058631\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 9, average log likelihood -2.058532\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 10, average log likelihood -2.058460\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: EM with 400 data points 10 iterations avll -2.058460\n",
      "23.5 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Initializing GMM, 3 Gaussians diag covariance 2 dimensions using 400 data points\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: K-means with 400 data points using 11 iterations\n",
      "44.4 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Running 10 iterations EM on full cov GMM with 3 Gaussians in 2 dimensions\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 1, average log likelihood -2.048481\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 2, average log likelihood -2.042271\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 3, average log likelihood -2.040435\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 4, average log likelihood -2.039638\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 5, average log likelihood -2.039221\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 6, average log likelihood -2.038977\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 7, average log likelihood -2.038823\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 8, average log likelihood -2.038720\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 9, average log likelihood -2.038648\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 10, average log likelihood -2.038596\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: EM with 400 data points 10 iterations avll -2.038596\n",
      "23.5 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Initializing GMM, 3 Gaussians diag covariance 2 dimensions using 400 data points\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: K-means with 400 data points using 5 iterations\n",
      "44.4 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Running 10 iterations EM on full cov GMM with 3 Gaussians in 2 dimensions\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 1, average log likelihood -1.846966\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 2, average log likelihood -1.844312\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 3, average log likelihood -1.843706\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 4, average log likelihood -1.843485\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 5, average log likelihood -1.843385\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 6, average log likelihood -1.843333\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 7, average log likelihood -1.843302\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 8, average log likelihood -1.843284\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 9, average log likelihood -1.843271\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 10, average log likelihood -1.843262\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: EM with 400 data points 10 iterations avll -1.843262\n",
      "23.5 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Initializing GMM, 4 Gaussians diag covariance 2 dimensions using 400 data points\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: K-means with 400 data points using 7 iterations\n",
      "33.3 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Running 10 iterations EM on full cov GMM with 4 Gaussians in 2 dimensions\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 1, average log likelihood -2.066971\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 2, average log likelihood -2.059522\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 3, average log likelihood -2.057279\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 4, average log likelihood -2.056240\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 5, average log likelihood -2.055647\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 6, average log likelihood -2.055261\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 7, average log likelihood -2.054985\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 8, average log likelihood -2.054774\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 9, average log likelihood -2.054604\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 10, average log likelihood -2.054461\n",
      "\u001b[0m"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  Iters               objv        objv-change | affected \n",
      "-------------------------------------------------------------\n",
      "      0       2.254447e+03\n",
      "      1       1.599607e+03      -6.548396e+02 |        4\n",
      "      2       1.526053e+03      -7.355386e+01 |        4\n",
      "      3       1.482710e+03      -4.334311e+01 |        4\n",
      "      4       1.453337e+03      -2.937267e+01 |        4\n",
      "      5       1.437610e+03      -1.572739e+01 |        4\n",
      "      6       1.424843e+03      -1.276744e+01 |        4\n",
      "      7       1.423950e+03      -8.926239e-01 |        4\n",
      "      8       1.423742e+03      -2.076569e-01 |        0\n",
      "      9       1.423742e+03       0.000000e+00 |        0\n",
      "K-means converged with 9 iterations (objv = 1423.7423072752413)\n",
      "  Iters               objv        objv-change | affected \n",
      "-------------------------------------------------------------\n",
      "      0       1.221258e+03\n",
      "      1       9.960676e+02      -2.251900e+02 |        3\n",
      "      2       9.319000e+02      -6.416760e+01 |        3\n",
      "      3       9.224220e+02      -9.478055e+00 |        2\n",
      "      4       9.203370e+02      -2.085000e+00 |        3\n",
      "      5       9.193201e+02      -1.016937e+00 |        0\n",
      "      6       9.193201e+02       0.000000e+00 |        0\n",
      "K-means converged with 6 iterations (objv = 919.3200542988865)\n",
      "  Iters               objv        objv-change | affected \n",
      "-------------------------------------------------------------\n",
      "      0       2.064129e+03\n",
      "      1       1.473136e+03      -5.909922e+02 |        5\n",
      "      2       1.381896e+03      -9.123998e+01 |        5\n",
      "      3       1.336459e+03      -4.543716e+01 |        5\n",
      "      4       1.290968e+03      -4.549115e+01 |        5\n",
      "      5       1.249547e+03      -4.142154e+01 |        5\n",
      "      6       1.193908e+03      -5.563888e+01 |        5\n",
      "      7       1.147284e+03      -4.662385e+01 |        5\n",
      "      8       1.121778e+03      -2.550640e+01 |        5\n",
      "      9       1.100424e+03      -2.135330e+01 |        5\n",
      "     10       1.082504e+03      -1.792050e+01 |        5\n",
      "     11       1.064938e+03      -1.756617e+01 |        5\n",
      "     12       1.039741e+03      -2.519679e+01 |        5\n",
      "     13       1.020528e+03      -1.921285e+01 |        5\n",
      "     14       1.013611e+03      -6.916698e+00 |        5\n",
      "     15       1.009732e+03      -3.878957e+00 |        4\n",
      "     16       1.008709e+03      -1.023144e+00 |        2\n",
      "     17       1.008679e+03      -3.027137e-02 |        0\n",
      "     18       1.008679e+03       0.000000e+00 |        0\n",
      "K-means converged with 18 iterations (objv = 1008.6788360253639)\n",
      "  Iters               objv        objv-change | affected \n",
      "-------------------------------------------------------------\n",
      "      0       1.330008e+03\n",
      "      1       1.070374e+03      -2.596344e+02 |        5\n",
      "      2       1.033233e+03      -3.714067e+01 |        5\n",
      "      3       1.011645e+03      -2.158854e+01 |        3\n",
      "      4       1.001525e+03      -1.012008e+01 |        3\n",
      "      5       9.865255e+02      -1.499931e+01 |        3\n",
      "      6       9.777706e+02      -8.754873e+00 |        3\n",
      "      7       9.693675e+02      -8.403075e+00 |        3\n",
      "      8       9.622345e+02      -7.133011e+00 |        3\n",
      "      9       9.572220e+02      -5.012565e+00 |        3\n",
      "     10       9.525161e+02      -4.705911e+00 |        3\n",
      "     11       9.428834e+02      -9.632658e+00 |        3\n",
      "     12       9.279863e+02      -1.489714e+01 |        3\n",
      "     13       9.196181e+02      -8.368133e+00 |        3\n",
      "     14       9.162512e+02      -3.366898e+00 |        3\n",
      "     15       9.124784e+02      -3.772787e+00 |        2\n",
      "     16       9.123312e+02      -1.472307e-01 |        0\n",
      "     17       9.123312e+02       0.000000e+00 |        0\n",
      "K-means converged with 17 iterations (objv = 912.3312165848179)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[1m\u001b[34mINFO: EM with 400 data points 10 iterations avll -2.054461\n",
      "17.4 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Initializing GMM, 4 Gaussians diag covariance 2 dimensions using 400 data points\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: K-means with 400 data points using 9 iterations\n",
      "33.3 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Running 10 iterations EM on full cov GMM with 4 Gaussians in 2 dimensions\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 1, average log likelihood -2.057174\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 2, average log likelihood -2.043711\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 3, average log likelihood -2.039123\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 4, average log likelihood -2.036080\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 5, average log likelihood -2.033800\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 6, average log likelihood -2.032461\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 7, average log likelihood -2.031634\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 8, average log likelihood -2.031089\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 9, average log likelihood -2.030719\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 10, average log likelihood -2.030466\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: EM with 400 data points 10 iterations avll -2.030466\n",
      "17.4 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Initializing GMM, 4 Gaussians diag covariance 2 dimensions using 400 data points\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: K-means with 400 data points using 6 iterations\n",
      "33.3 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Running 10 iterations EM on full cov GMM with 4 Gaussians in 2 dimensions\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 1, average log likelihood -1.841782\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 2, average log likelihood -1.840068\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 3, average log likelihood -1.839757\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 4, average log likelihood -1.839661\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 5, average log likelihood -1.839621\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 6, average log likelihood -1.839599\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 7, average log likelihood -1.839584\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 8, average log likelihood -1.839572\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 9, average log likelihood -1.839560\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 10, average log likelihood -1.839549\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: EM with 400 data points 10 iterations avll -1.839549\n",
      "17.4 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Initializing GMM, 5 Gaussians diag covariance 2 dimensions using 400 data points\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: K-means with 400 data points using 18 iterations\n",
      "26.7 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Running 10 iterations EM on full cov GMM with 5 Gaussians in 2 dimensions\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 1, average log likelihood -2.062952\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 2, average log likelihood -2.054566\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 3, average log likelihood -2.052150\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 4, average log likelihood -2.051053\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 5, average log likelihood -2.050428\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 6, average log likelihood -2.050018\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 7, average log likelihood -2.049721\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 8, average log likelihood -2.049490\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 9, average log likelihood -2.049301\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 10, average log likelihood -2.049139\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: EM with 400 data points 10 iterations avll -2.049139\n",
      "13.8 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Initializing GMM, 5 Gaussians diag covariance 2 dimensions using 400 data points\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: K-means with 400 data points using 17 iterations\n",
      "26.7 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Running 10 iterations EM on full cov GMM with 5 Gaussians in 2 dimensions\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 1, average log likelihood -2.052925\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 2, average log likelihood -2.038996\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 3, average log likelihood -2.033803\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 4, average log likelihood -2.031361\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 5, average log likelihood -2.029937\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 6, average log likelihood -2.028999\n",
      "\u001b[0m"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  Iters               objv        objv-change | affected \n",
      "-------------------------------------------------------------\n",
      "      0       1.361257e+03\n",
      "      1       9.063186e+02      -4.549381e+02 |        5\n",
      "      2       9.002513e+02      -6.067355e+00 |        3\n",
      "      3       8.976158e+02      -2.635467e+00 |        3\n",
      "      4       8.954073e+02      -2.208544e+00 |        3\n",
      "      5       8.931700e+02      -2.237268e+00 |        3\n",
      "      6       8.914833e+02      -1.686760e+00 |        2\n",
      "      7       8.909720e+02      -5.112851e-01 |        2\n",
      "      8       8.906234e+02      -3.485786e-01 |        2\n",
      "      9       8.906046e+02      -1.874453e-02 |        2\n",
      "     10       8.905777e+02      -2.694399e-02 |        0\n",
      "     11       8.905777e+02       0.000000e+00 |        0\n",
      "K-means converged with 11 iterations (objv = 890.5777033708389)\n",
      "  Iters               objv        objv-change | affected \n",
      "-------------------------------------------------------------\n",
      "      0       1.330284e+03\n",
      "      1       6.986024e+02      -6.316814e+02 |        5\n",
      "      2       6.401278e+02      -5.847456e+01 |        5\n",
      "      3       6.295455e+02      -1.058237e+01 |        5\n",
      "      4       6.240665e+02      -5.479028e+00 |        4\n",
      "      5       6.216327e+02      -2.433801e+00 |        3\n",
      "      6       6.202920e+02      -1.340627e+00 |        3\n",
      "      7       6.201182e+02      -1.738221e-01 |        0\n",
      "      8       6.201182e+02       0.000000e+00 |        0\n",
      "K-means converged with 8 iterations (objv = 620.118201482407)\n",
      "  Iters               objv        objv-change | affected \n",
      "-------------------------------------------------------------\n",
      "      0       1.600975e+03\n",
      "      1       9.340277e+02      -6.669477e+02 |        6\n",
      "      2       8.699684e+02      -6.405929e+01 |        6\n",
      "      3       8.385330e+02      -3.143543e+01 |        6\n",
      "      4       8.229759e+02      -1.555709e+01 |        5\n",
      "      5       8.197077e+02      -3.268214e+00 |        4\n",
      "      6       8.182413e+02      -1.466322e+00 |        3\n",
      "      7       8.165274e+02      -1.713939e+00 |        2\n",
      "      8       8.158777e+02      -6.497450e-01 |        3\n",
      "      9       8.157692e+02      -1.085035e-01 |        0\n",
      "     10       8.157692e+02       0.000000e+00 |        0\n",
      "K-means converged with 10 iterations (objv = 815.7691602213547)\n",
      "  Iters               objv        objv-change | affected \n",
      "-------------------------------------------------------------\n",
      "      0       1.451421e+03\n",
      "      1       8.306607e+02      -6.207602e+02 |        6\n",
      "      2       7.118493e+02      -1.188114e+02 |        6\n",
      "      3       6.162297e+02      -9.561958e+01 |        6\n",
      "      4       5.842937e+02      -3.193598e+01 |        5\n",
      "      5       5.733342e+02      -1.095956e+01 |        5\n",
      "      6       5.722676e+02      -1.066614e+00 |        5\n",
      "      7       5.719144e+02      -3.531945e-01 |        0\n",
      "      8       5.719144e+02       0.000000e+00 |        0\n",
      "K-means converged with 8 iterations (objv = 571.9143585738527)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[1m\u001b[34mINFO: iteration 7, average log likelihood -2.028338\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 8, average log likelihood -2.027855\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 9, average log likelihood -2.027490\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 10, average log likelihood -2.027209\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: EM with 400 data points 10 iterations avll -2.027209\n",
      "13.8 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Initializing GMM, 5 Gaussians diag covariance 2 dimensions using 400 data points\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: K-means with 400 data points using 11 iterations\n",
      "26.7 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Running 10 iterations EM on full cov GMM with 5 Gaussians in 2 dimensions\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 1, average log likelihood -1.866597\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 2, average log likelihood -1.847483\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 3, average log likelihood -1.842273\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 4, average log likelihood -1.840068\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 5, average log likelihood -1.838909\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 6, average log likelihood -1.838214\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 7, average log likelihood -1.837756\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 8, average log likelihood -1.837433\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 9, average log likelihood -1.837194\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 10, average log likelihood -1.837009\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: EM with 400 data points 10 iterations avll -1.837009\n",
      "13.8 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Initializing GMM, 6 Gaussians diag covariance 2 dimensions using 400 data points\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: K-means with 400 data points using 8 iterations\n",
      "22.2 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Running 10 iterations EM on full cov GMM with 6 Gaussians in 2 dimensions\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 1, average log likelihood -2.054284\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 2, average log likelihood -2.046531\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 3, average log likelihood -2.044151\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 4, average log likelihood -2.043007\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 5, average log likelihood -2.042314\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 6, average log likelihood -2.041830\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 7, average log likelihood -2.041459\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 8, average log likelihood -2.041155\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 9, average log likelihood -2.040897\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 10, average log likelihood -2.040672\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: EM with 400 data points 10 iterations avll -2.040672\n",
      "11.4 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Initializing GMM, 6 Gaussians diag covariance 2 dimensions using 400 data points\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: K-means with 400 data points using 10 iterations\n",
      "22.2 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Running 10 iterations EM on full cov GMM with 6 Gaussians in 2 dimensions\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 1, average log likelihood -2.055365\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 2, average log likelihood -2.038774\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 3, average log likelihood -2.033620\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 4, average log likelihood -2.031226\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 5, average log likelihood -2.029873\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 6, average log likelihood -2.029008\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 7, average log likelihood -2.028405\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 8, average log likelihood -2.027957\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 9, average log likelihood -2.027608\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 10, average log likelihood -2.027324\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: EM with 400 data points 10 iterations avll -2.027324\n",
      "11.4 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Initializing GMM, 6 Gaussians diag covariance 2 dimensions using 400 data points\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: K-means with 400 data points using 8 iterations\n",
      "22.2 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Running 10 iterations EM on full cov GMM with 6 Gaussians in 2 dimensions\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 1, average log likelihood -1.856488\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 2, average log likelihood -1.840784\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 3, average log likelihood -1.836360\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 4, average log likelihood -1.834406\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 5, average log likelihood -1.833328\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 6, average log likelihood -1.832648\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 7, average log likelihood -1.832178\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 8, average log likelihood -1.831835\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 9, average log likelihood -1.831574\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 10, average log likelihood -1.831368\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: EM with 400 data points 10 iterations avll -1.831368\n",
      "11.4 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Initializing GMM, 2 Gaussians diag covariance 2 dimensions using 600 data points\n",
      "\u001b[0m"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "  Iters               objv        objv-change | affected \n",
      "-------------------------------------------------------------\n",
      "      0       2.411528e+05\n",
      "      1       4.081095e+04      -2.003419e+05 |        2\n",
      "      2       5.181026e+03      -3.562992e+04 |        2\n",
      "      3       5.165666e+03      -1.536031e+01 |        0\n",
      "      4       5.165666e+03       0.000000e+00 |        0\n",
      "K-means converged with 4 iterations (objv = 5165.666163455702)\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\u001b[1m\u001b[34mINFO: K-means with 600 data points using 4 iterations\n",
      "100.0 data points per parameter\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: Running 10 iterations EM on full cov GMM with 2 Gaussians in 2 dimensions\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 1, average log likelihood -2.026541\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 2, average log likelihood -2.026538\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 3, average log likelihood -2.026538\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 4, average log likelihood -2.026538\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 5, average log likelihood -2.026538\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 6, average log likelihood -2.026538\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 7, average log likelihood -2.026538\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 8, average log likelihood -2.026538\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 9, average log likelihood -2.026538\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: iteration 10, average log likelihood -2.026538\n",
      "\u001b[0m\u001b[1m\u001b[34mINFO: EM with 600 data points 10 iterations avll -2.026538\n",
      "54.5 data points per parameter\n",
      "\u001b[0m"
     ]
    },
    {
     "data": {
      "text/plain": [
       "ScikitLearn.Skcore.GridSearchCV\n",
       "  estimator: GaussianMixtures.GMM{Float64,Array{UpperTriangular{Float64,Array{Float64,2}},1}}\n",
       "  param_grid: Dict{Symbol,Array{Int64,1}}\n",
       "  scoring: Void nothing\n",
       "  loss_func: Void nothing\n",
       "  score_func: Void nothing\n",
       "  fit_params: Dict{Any,Any}\n",
       "  n_jobs: Int64 1\n",
       "  iid: Bool true\n",
       "  refit: Bool true\n",
       "  cv: Void nothing\n",
       "  verbose: Int64 0\n",
       "  error_score: String \"raise\"\n",
       "  scorer_: ScikitLearnBase.score (function of type ScikitLearnBase.#score)\n",
       "  best_params_: Dict{Symbol,Any}\n",
       "  best_score_: Float64 -2.266662439479441\n",
       "  grid_scores_: Array{ScikitLearn.Skcore.CVScoreTuple}((6,))\n",
       "  best_estimator_: GaussianMixtures.GMM{Float64,Array{UpperTriangular{Float64,Array{Float64,2}},1}}\n"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grid_search = fit!(GridSearchCV(GMM(n_components=3, kind=:full), Dict(:n_components=>[1,2,3,4,5,6])), X_train)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "As expected, n_components=2 has the highest score. Note that [Variational Bayes](https://github.com/davidavdav/GaussianMixtures.jl#variational-bayes-training) is usually a more data-efficient way of selecting the number of components (though it is incompatible with the ScikitLearn.jl pipeline)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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GkCxMXDgQPn4+Ojjjz/W7t27r8t7Nm3aVJJzKb5LZWVlacOGDaZfu379+vrHP/6hb775RpL02Wef5exr2bKlTp486TLOcDl//vmnbDab7r33Xrd969atM1Vf9nKGX3/9tanzr5UWLVrIbrdr/fr1ps4PDg7WPffcow8//FDt2rXTnj17tGPHjpz9gYGBOnDggNt5WVlZ+vXXX/P9PtmrzWRmZl72OLvdriZNmujpp5/WokWLZBiGy98FAEUHwRpAsREZGalx48YpLS1NMTEx+umnn3I9zso1gG+77TbVrVtXcXFxWr58ucu+WbNmac+ePfl+rV27duno0aNu27O73hdfvDhq1CgZhqEhQ4YoMTHR7ZyUlJScGWjJOY9sGIZbiN67d6+effZZU3cAHD58uEqUKKHJkyfnGvALq5NdqVIlPfjgg9q8ebOmTJmS64jJ3r17c9YFP3/+vH788Ue3Y9LT03PGSvz9/XO2t2jRQn/99ZdLx1uSJk+erP379+e7zooVK0pSrmteb9myRWfOnHHbntvfBQBFBzPWAIqV8ePHS3KGnFatWqlZs2Zq0aKFgoKCdOrUKSUkJOSs11yQNZMv56233lLHjh3Vs2dP9ejRQ7Vq1dKvv/6qtWvXqnPnzlq5cmW+Xmf16tV6+umndeutt6pOnToKCQnRwYMH9fnnn6tEiRJ6+umnc45t166dpk2bpueee061a9dWly5dVLNmTSUnJ2v//v36/vvv1bp1a3311VeSpLvvvlu1atXSq6++qt9++01NmjTR/v37tWLFCt1111153jTlcurXr6+5c+dq+PDhatKkibp3767atWsrKSlJmzZtUkBAwBXHcq6V2bNn688//9SLL76o9957T9HR0QoNDdXff/+t+Ph4bd68WYsXL1ZERITOnTun6Oho1apVS82aNVN4eLhSU1O1evVq/f777+revbvq1q2b89pPPfWUVq1apW7duqlPnz4KCgrSjz/+qISEBN1xxx25/vYiN3feeaemT5+uRx55RD179lS5cuVUoUIF/eMf/9B7772n119/XdHR0YqKilJgYKD27NmjL774Qr6+vnriiSeu1bcOwNUolEX+roFvv/3WGDRokFGnTh3D39/fiIyMNB555BEjMTExX+d/8sknRp8+fYzIyEjD39/fqFu3rjF69Gjj1KlTuR7/+eefG02bNjV8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x8dHvXr1ctl+0003KTo6WnXr1lVSUpIWLlyoJ554QomJiXr55ZetKB0AAAAepkgGa8MwdP78+Xwde/FFhReLi4vTpEmT1KdPH7Vp06bANSxatEgLFizQs88+q6ioKJd9n332mcvXAwcOVOfOnfXqq6/qscceU9WqVQv8fgAAAPBsRXIUJC4uTn5+fld8+Pv7648//nA7//fff1ePHj1044036o033ijw+69fv16PPPKIOnfurClTpuTrnFGjRik9PV3r1q0r8PsBAADA8xXJjnW9evW0cOHCfB1bpUoVl68PHDigjh07KjAwUCtWrFCZMmUK9N7btm1T9+7ddeONN2rp0qWy2/P3b4/q1atLkk6cOHHFY0eNGqWAgACXbffff7/uv//+AtUKAAAA8xYvXqzFixe7bMvtHib5VSSDdWhoqAYMGFDg806cOKGOHTsqIyND69atU2hoaIHO37Nnj2JiYlS5cmV99dVX8vf3L9C5klSpUqUrHhsbG6umTZsWqDYAAABYK7fG5pYtW9SsWTNTr1ckR0HMSElJUefOnZWYmKivvvpKkZGReR574MAB7d6922XbkSNH1LFjR/n4+GjlypUKCgrK9dyTJ08qKyvLZVtGRoamTp2q0qVLq23btlf/YQAAAOBximTH2owHHnhAmzZt0uDBg7Vz507t3LkzZ1/ZsmXVvXv3nK/79++vuLg4l4DcqVMnJSQk6JlnntH69etdXjs0NFTt27eXJC1fvlxTpkxRr169VLNmTZ04cUKLFi3Szp079fLLL1/xDo8AAAAonopNsN62bZtsNpsWLFigBQsWuOwLDw93CdY2m81tdnr79u2SpH/9619ur92mTZucYN2oUSM1bNhQH3zwgY4dO6ZSpUqpcePGWrp0qXr06GH1xwIAAICHKDbBet++ffk+9rvvvnPblpmZma9zmzZt6rbcHgAAAFBsZqwBAACAwkSwBgAAACxAsAYAAAAsQLAGAAAALECwBgAAACxAsAYAAAAsQLAGAAAALECwBgAAACxAsAYAAAAsQLAGAAAALECwBgAAACxAsAYAAAAsQLAGAAAALECwBgAAACxAsAYAAAAsQLAGAAAALECwBgAAACxAsAYAAAAsQLAGAAAALECwBgAAACxAsAYAAAAsQLAGAAAALECwBgAAACxAsAYAAAAsYDpY//XXX3r00UdVt25d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Tp06pQceeMC6KgEPQMcaAADvlu9gHRISooYNG0pyjoKEhYUpLCzM5RibzaYyZcqoWbNmGjFihLWVAkUcHWsAALxbvoP1/fffr/vvv1+S1LZtW40bN0533nnnNSsM8DTJyXSsAQDwZqZuaf7dd99ZXQfg8RwOOtYAAHgz0xcvSlJ6erq2b9+uDRs2KC4uzu1xPa1du1aDBw9W3bp1VaZMGUVFRWnIkCE6fPhwvs7/7LPPFBMTo7CwMPn6+qp69erq3bu3du7cmevxy5cvV7NmzeTn56fw8HBNmDBBmZmZVn4keBg61gAAeDdTHeusrCw999xzmjt3rlJSUvI87noGzTFjxujkyZPq3bu3ateurb1792rWrFlasWKFfv31V4WEhFz2/O3btysoKEhPPPGEgoODdfjwYS1YsEAtWrTQxo0b1ahRo5xjv/76a917771q166dZs+ere3bt2vKlCk6duyY5syZc60/KoooOtYAAHg3U8H6//7v/zR9+nQNGzZM0dHR6t+/v6ZNm6YKFSpo7ty5stls+te//mV1rZcVGxur6Ohol22dOnVSmzZtNHv2bE2aNOmy57/wwgtu2wYPHqxq1app3rx5mjt3bs72p556So0bN9aqVatktzub/uXKldPLL7+sxx9/XHXq1LHgE8HT0LEGAMC7mRoFWbhwoe677z7NmzdPMTExkqRmzZppyJAh+vnnn2Wz2bR27VpLC72SS0O1JLVu3VpBQUGKj4839ZqVKlWSv7+/Tp06lbMtPj5e8fHxGjp0aE6olqQRI0YoKytLH3/8san3guejYw0AgHczFawPHjyodu3aSZJKly4tSUpNTZUklSpVSv369dN7771nUYnmnT17VsnJyQoODs73OadPn9bx48e1Y8cOPfLII3I4HGrfvn3O/q1bt8pms6lZs2Yu51WpUkXVqlXT1q1bLasfnoWONQAA3s3UKEjFihVzbmletmxZlS9fXnv37nU55uTJk1df3VWKjY1Venq6+vbtm+9zWrZsqd27d0tyjneMGzdOgwYNytmfmJgoyRmkL1WlShX9/fffV1k1PFFWlnT2LB1rAAC8malg3aRJE23atCnn67Zt2+q1115TkyZNlJWVpZkzZ+qmm24yXZRhGDp//ny+js3umF8qLi5OkyZNUp8+fdSmTZt8v/fChQt15swZ7d27V2+//bbOnTun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pujLL79UZmamJkyYYFWNQJFFxxoAAGQzNQpy6NAh1apVK+frZcuWqUGDBnruueckScOHD9e8efOsqRAootLSpPR0OtYAAMDJVMfax8dHaWlpkpxjIN9++63LOtahoaE6fvy4NRUCRVRysvOZjjUAAJBMBusbbrhB77//vk6ePKm3335bSUlJ6tq1a87+/fv3Kzg42LIigaLI4XA+07EGAACSyVGQ8ePH6+67784Jz61atXK5mHHFihVq3ry5NRUCRRQdawAAcDFTwbpDhw7asmWLVq9erQoVKqhPnz45+06ePKnbb79d3bt3t6xIoCiiYw0AAC5meh3rBg0aqEGDBm7bAwMDFRsbe1VFAZ6AjjUAALjYVd0gZt++ffr666+1f/9+SVJ4eLg6d+6smjVrWlIcUJTRsQYAABczHaxHjx6tGTNmKCsry2W73W7XE088oVdeeeWqiwOKsuyONcEaAABIJlcF+fe//63Y2Fj16NFDP/30k06dOqVTp07pp59+Uq9evRQbG8s4CIo9h0MqWVIqXbqwKwEAAEWBqY71G2+8oW7dumnJkiUu22+55RZ9+OGHSk1N1euvv65Ro0ZZUiRQFCUn060GAAAXmOpYJyQkqFOnTnnu79SpkxISEszWBHgEh4MLFwEAwAWmgnVISIi2bduW5/5t27apUqVKposCPAEdawAAcDFTwbp379568803NXXqVJ09ezZn+9mzZzVt2jS9+eabLmtbA8URHWsAAHAxUzPWkydP1q+//qrnn39e48ePV9WqVSVJf//9tzIyMtS2bVtNmjTJ0kKBooaONQAAuJipYO3v769vv/1Wn3/+ucs61jExMerSpYvuvvtu2Ww2SwsFiprkZDrWAADgggIH67S0NK1atUoRERHq3r07ty6H13I4pPDwwq4CAAAUFQWesS5VqpR69+6tH3/88VrUA3gMOtYAAOBiBQ7WNptNtWvX1vHjx69FPYDHcDiYsQYAABeYWhXk+eef1+zZs7V7926r6wE8Bh1rAABwMVMXL27cuFEVK1bUDTfcoDvuuEMRERHy8/NzOcZms2nGjBmWFAkURXSsAQDAxUwF69mzZ+f8+dtvv831GII1irOsLOnsWTrWAADgAlPBOisry+o6AI+SfV8kOtYAACCbqRlrwNslJzuf6VgDAIBs+Q7WqampevTRRzVr1qzLHjdz5kwN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lCn617/+pT59+vi6pJvSihUrNG/ePF+XAaAMCNYAKoXc3FwlJSU5jfs62BqG4dPzl8amTZs0cOBATZw4UcOGDVNERISvS7opvffeewRr4AZFsAZQKURFRWnx4sU6efKkr0u57nJycryyzqlTp1SrVi2vrAUANyOCNYAbnsVi0QsvvKD8/PwSu9a/dejQIVmtVi1dutTpmNVq1YwZM+z3p0+fLqvVqr1792r48OGqXbu2goODNXXqVEnSkSNHNHDgQNWqVUuNGjXSG2+8UWJtBQUFeuGFF9SoUSMFBgZqwIABOnr0qNPcrVu3qk+fPqpdu7YCAgLUvXt3ff311w5zimvKyMjQsGHDFBQUpHvvvdftcz5w4IDi4uJUt25dBQQEqGvXrlq3bp39ePF2GklauHChrFarqlSp4nZNwzA0b948RUZGyt/fX8HBwerbt69++OEH+5yCggLNnDlTt99+u/z8/BQaGqopU6bo6tWrDms1b95csbGx2rx5szp16qTq1asrMjJSmzdvliStXr3afp6OHTvqp59+cnj8qFGjVKNGDR04cEC9e/dWYGCgmjRpopkzZzrVnZOTo0mTJum2226Tn5+fWrZsqddff91pntVqVUJCgj7++GO1bdtWfn5+atOmjTZs2OA09/jx4xozZowaNmxon/fuu+86zCneb79y5UrNnj1bzZo1k7+/v+6//37t37/fPi8mJkZr1661/z21Wq0KCwuzH1+wYIHatGmjgIAABQUFqVOnTvr3v//t7q0CcB0RrAFUCqGhoRo5cqRXu9bF20iGDBkiSZozZ47uuusuzZ49W3PnzlWvXr3UtGlTvfLKK7rjjjv07LPP6n//938d1jAMQ7NmzdL69ev1/PPP6+mnn9YXX3yhnj17Kjc31z5v48aNio6Ols1m0/Tp05WYmKiLFy+qR48e+v77751qiouL05UrV5SYmKixY8e6fA6nTp1S165d9cUXX2j8+PH6+9//rtzcXMXGxurjjz+WJEVHR2vZsmUyDEO9evXSsmXL9K9//cvtazNmzBhNnDhRISEheuWVVzR58mT5+/try5Yt9jnx8fGaNm2aOnbsqLlz56p79+5KTEzU0KFDnV7nvXv36s9//rNiY2OVlJSk8+fPKzY2Vu+9954mTZqkkSNHasaMGdq/f7/9/fjt4wsLC9WnTx81atRIr776qjp27Khp06Zp+vTpDnMffPBBzZs3T/369VNycrJatmypZ599VpMmTXJ6jl999ZX++te/aujQoXr11VeVm5urwYMH6/z58w6vb5cuXbRx40YlJCRo/vz5uuOOOxQfH1/ihz+TkpL08ccf69lnn9ULL7ygLVu2aPjw4fbjL774oqKiolSvXj0tX75cy5Yt09y5cyVJixcv1tNPP602bdpo3rx5mjFjhv7whz9o69atbt8rANeRAQA3sNTUVMNqtRrbtm0zMjMzjVtuucWYMGGC/Xj37t2Ntm3b2u8fPHjQsFgsxpIlS5zWslgsxssvv2y/P336dMNisRh/+ctf7GMFBQVGs2bNjCpVqhivvvqqffzChQtG9erVjdGjR9vH0tLSDIvFYjRr1szIzs62j69cudKwWCzGggUL7GMRERFGv379HOq5cuWKERYWZvTu3duppuHDh5t6fSZMmGBYrVbj66+/to/ZbDYjLCzMCAsLc3r+Tz31lMc1N27caFgsFmPixIku52zfvt2wWCzGE0884TD+7LPPGlar1UhLS7OPNW/e3LBarcbWrVvtY59//rlhsViMgIAA4+jRo/bxlJQUw2q1Gps3b7aPjRo1yrBarQ7vu2EYRv/+/Q0/Pz/j7NmzhmEYxkcffWRYLBYjMTHRYV5cXJxRpUoVIzMz0+G18PPzMw4cOGAf+/nnnw2LxWIsWrTIPhYfH280adLEOH/+vMOaQ4cONerUqWNcuXLFMIz//F1o3bq1kZ+fb583f/58w2q1Gjt27HCoOzQ09NqX1Bg4cKDD32UAFQ8dawCVRmhoqEaMGKGUlBT9+uuvXlnTYrEoPj7eft9qtapjx44yDENjxoyxj9eqVUstWrRQZmam0xqPPvqoqlevbr8/ePBgNWrUyL4d48cff9TevXs1dOhQnT171v4nKytL9913n9LT051qeuKJJ0zVv379enXu3Fldu3a1jwUEBOjxxx/XwYMHtXPnTnMvxG+sWrVKVqvVviWmJOvWrZPFYtHEiRMdxidNmiTDMLR27VqH8VatWqlz5872+126dJEk3XfffWrSpInDuGEYJb7Of/3rXx3ujx8/Xrm5ufqf//kfe01Vq1bVU0895VRTYWGh1q9f7zDes2dPNW/e3H6/bdu2qlmzpsO5V69erQcffFAFBQUO712vXr108eJFh60xUlGn/7fbbO69916Xz+datWvX1tGjRx1+gwGgYiFYA6hUXnzxReXl5Xnca10at912m8P9WrVqyc/PT0FBQU7jv90mUOz2228vcezgwYOSpH379kmSRo4cqfr169v/BAcH65///KeuXr2qixcvOjw+NDTUVO2HDh1SixYtnMbvvPNO+/HSyszMVOPGjVW7dm2357VarU7PvUGDBqpdu7bTea99jWvWrClJatq0qcN48Ycrr32dr92LLMl+VZPi1/nw4cNq3LixAgICHOa5ei2aNWvm9Lzq1KljP/fp06d14cIFpaSkOLxv9evXt//QderUKbdr1qlTp8TnU5LnnntOgYGB6ty5syIiIjR+/HinPfgAfKuqrwsAAG8KDQ3V8OHDlZKSoueee87puKvL7xUWFrpcs6QP8rn6cJ9RhsvrFZ/79ddfV7t27UqcExgY6HDf39+/1OfxBbOXO3T1enrzdS4tT+cuft+GDx+uRx99tMS5115D/fc8n5YtW2r37t369NNP9dlnKGuUFgAABQxJREFUn2n16tX6xz/+oWnTpmnatGkeHw+g/BGsAVQ6L774opYtW6Y5c+Y4HSvuEF64cMFhvCydW7P27t3rNLZv3z57iA4PD5ck1ahRQz169PDquUNCQrR7926n8YyMDPvx0goPD9fnn3+uCxcuuOxah4SEqLCwUHv37nXomJ86dUoXLlwo03ndKSwsVGZmpkOHvPh5F3f3Q0JC9OWXXyo7O9uha13W16J+/fqqUaOGCgoKvPq+ufthxN/fX3FxcYqLi1N+fr7+9Kc/afbs2Zo8ebKqVavmtRoAlA1bQQBUOmFhYRo+fLjeeustpyuE1KhRQ/Xq1XPat7xo0aJy+zKZpUuXymaz2e+vXLlSJ06cUL9+/SRJHTp0UHh4uF577TVlZ2c7Pf7MmTNlPne/fv307bffOlw5Ijs7WykpKQoNDVWrVq1KveZDDz2kwsJCvfzyy27PaxiG/YoWxV5//XVZLBY98MADpT6vJwsXLnS6X61aNXvo7devn/Lz853mJScny2q1qm/fvqU6n9Vq1UMPPaRVq1Zpx44dTsfL+r4FBAQ4bf2RpHPnzjncr1q1qu68804ZhqG8vLwynQuAd9GxBnDDK+nX6MVfy7179261adPG4dhjjz2mpKQkjR07Vh07dlR6err27t1bbtsLgoKC1K1bN40ePVonT57UvHnzFBERoccee0xSUYfyn//8p/r166fWrVtr9OjRatKkiY4dO6ZNmzapVq1a9kvjldbzzz+vFStWqE+fPkpISFBQUJBSU1N16NAhrV69ukxrdu/eXSNGjND8+fO1Z88e9enTR4WFhfrqq6/Uo0cPjRs3TpGRkXr00UeVkpKi8+fPKzo6Wlu3btXSpUs1aNAgRUdHl+ncrtx666367LPPNGrUKHXp0kXr1q3T+vXrNWXKFNWtW1dS0aX2YmJiNGXKFB04cEDt2rXThg0b9Mknn2jixImm963/VlJSktLS0tSlSxeNHTtWrVq10rlz57Rt2zZt3LixTOG6Q4cOev/99zVp0iR16tRJgYGB6t+/v3r16qWGDRvqnnvuUYMGDbRz504tWrRI/fv3d9o3DsA3CNYAbngldZrDw8M1YsQILVmyxOn41KlTdebMGX3wwQdauXKl+vXrp/Xr1ys4ONh019rVvGvHi7+85ueff1ZSUpKysrLUs2dPLVq0SH5+fvZ50dHR+uabbzRz5kwtWrRINptNDRs2VJcuXUxfAaQkwcHB+uabb/Tcc89p4cKFunLliiIjI/Xpp5+qT58+TrWaff6pqalq166d3n77bf3tb39TrVq11LFjR9199932OW+//bbCw8OVmpqqjz76SA0bNtSUKVOcribi6rylGa9atao+++wzPfnkk/rb3/6mGjVqaPr06XrppZccHvfJJ59o6tSp+u///m+lpqaqefPmeu2115yuXmL23MHBwfr22281Y8YMffjhh3rzzTdVt25dtW7dWq+88orTY0ty7fi4ceO0fft2paamau7cuQoJCVH//v315JNPavny5UpOTpbNZlPTpk01YcIETZkypcR1AVx/FuN6fAIEAIByMnr0aK1atUqXLl3ydSkAbnLssQYAAAC8gGANAAAAeAHBGgBwwyuvK7oAQGmwxxoAAADwAjrWAAAAgBcQrAEAAAAvIFgDAAAAXkCwBgAAALyAYA0AAAB4AcEaAAAA8AKCNQAAAOAFBGsAAADACwjWAAAAgBf8P2aZrIVNX60eAAAAAElFTkSuQmCC",
      "text/plain": [
       "PyPlot.Figure(PyObject <matplotlib.figure.Figure object at 0x323745510>)"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "n_comps, results = zip([(first(values(gs.parameters)), gs.mean_validation_score) for gs in grid_search.grid_scores_]...);\n",
    "\n",
    "plot(n_comps, results)\n",
    "xlabel(\"Number of components\")\n",
    "ylabel(\"Cross-validation score\")\n",
    "title(\"Grid search results\")\n",
    "ylim([-2.4, -2.2]);"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Julia 0.5.1",
   "language": "julia",
   "name": "julia-0.5"
  },
  "language_info": {
   "file_extension": ".jl",
   "mimetype": "application/julia",
   "name": "julia",
   "version": "0.5.1"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
